#include <bits/stdc++.h>
using namespace std;
#define int long long
#define ld long double
#define MASK(i) (1LL << (i))
const int inf = 1e18;
const int MAXN = 5e4 + 4;;
int32_t main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
string s;
cin >> s;
int cost = 0;
int cnt = 0;
set<pair<int, int>> st;
int i = -1;
for (char &c : s)
{
i++;
if (c == '(') cnt++;
else
{
cnt--;
if (c == '?')
{
int a, b;
cin >> a >> b;
cost += b;
c = ')';
st.insert({a - b, i});
}
if (cnt < 0)
{
if (st.empty())
{
cout << -1;
return 0;
}
cnt += 2;
cost += st.begin()->first;
s[st.begin()->second] = '(';
st.erase(st.begin());
}
}
}
if (cnt) cout << -1;
else cout << cost << '\n' << s;
return 0;
}
1487A - Arena | 1520D - Same Differences |
376A - Lever | 1305A - Kuroni and the Gifts |
1609A - Divide and Multiply | 149B - Martian Clock |
205A - Little Elephant and Rozdil | 1609B - William the Vigilant |
978B - File Name | 1426B - Symmetric Matrix |
732B - Cormen --- The Best Friend Of a Man | 1369A - FashionabLee |
1474B - Different Divisors | 1632B - Roof Construction |
388A - Fox and Box Accumulation | 451A - Game With Sticks |
768A - Oath of the Night's Watch | 156C - Cipher |
545D - Queue | 459B - Pashmak and Flowers |
1538A - Stone Game | 1454C - Sequence Transformation |
165B - Burning Midnight Oil | 17A - Noldbach problem |
1350A - Orac and Factors | 1373A - Donut Shops |
26A - Almost Prime | 1656E - Equal Tree Sums |
1656B - Subtract Operation | 1656A - Good Pairs |